package com.hfi.security.core.exception;

import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;

/**
 * 错误码枚举
 * @author ChangLiang
 * @date 2019/7/31
 */
public enum ErrorCode {

    /**
     * 获取成功
     */
    OK("200", "成功"),
    /**
     * 校验失败
     */
    BAD_REQUEST("400","校验失败"),
    /**
     * 无授权
     */
    NO_AUTHENTICATION("401","登录认证失败"),
    FORBIDDEN("403", "访问令牌校验失败"),
    MOBILE_CHECK_ERROR("700008","手机号码格式错误，请重新输入"),
    PASSWORD_SHORT("200014","密码需大于8位！"),
    PASSWORD_LONG("200015","密码需小于20位！"),
    PASSWORD_E("200016","密码只支持英文+数字！"),
    USER_EXIST("4001", "该手机号已注册"),
    PASSWORD_SET("4002", "请设置密码"),
    USER_NOT_EXIST("4003", "用户不存在，请注册"),
    /**
     * 获取失败
     */
    ERROR("500", "服务器错误");

    /**
     * 错误码 加入final关键字 防止枚举值被修改
     */
    public final String value;

    /**
     * 含义 加入final关键字 防止枚举值被修改
     */
    public final String memo;

    ErrorCode(String value, String memo) {
        this.value = value;
        this.memo = memo;
    }
    private static final Map<String, ErrorCode> lookup = new HashMap<String, ErrorCode>();

    static {
        for (ErrorCode s : EnumSet.allOf(ErrorCode.class)) {
            lookup.put(s.value, s);
        }
    }

    public static ErrorCode get(String value) {
        return lookup.get(value);
    }
}
